知识点名称:移动应用常用测试技术

编号: K14-1

前驱知识点编号:K1-1

作者:

讲义内容:

1、移动应用测试技术包括:

  • 兼容性测试
  • 交互性测试
  • 用户体验测试
  • 耗电量测试
  • 网络流量测试
  • 网络连接测试
  • 性能测试
  • 稳定性测试

2、移动App测试设计

  • 测试分析是测试设计的基础: 明确测试范围、列出被测试的界面、功能、场景、业务规则、业务数据;
  • 测试设计思路:功能层次图、业务流程图、正面/负面测试、思维导图;
  • 设计方法:等价类划分、边界值分析、决策表、基于场景的测试、端到端的测试;
  • 覆盖度: 代码、功能、状态、控制流、数据流;
  • 用例描述:名称/目的、前提/条件、数据、操作、期望结果;
  • 数据驱动的测试用例

3、移动应用Bug的发现和报告

  • 测试思维训练:分析性思维、情景性思维、创造性思维(逆向、发散性思维等)
  • Bug发现能力的培养:探索式测试、上下文驱动、了解技术、了解开发、观察力、聚焦与发散、。
  • 测试用例助一臂之力,也是用例的作用
  • Bug的有效性:test oracle,测试依据
  • Bug描述:期望vs. 实际结果、屏幕拷贝、trace Log

4、移动应用测试的主要内容

  • 功能测试
  • 性能测试
  • “闪退”测试
  • 安全性测试
  • 用户体验测试

5、Android App UI自动化测试工具Robotium

Android 平台上类似Selenium 的集成测试工具,能够对各种控件进行操作,模拟各种手势操作、查找和断言机制的API。支持对native和WebView 的操作,能自动的支持多个安卓Activities,有单独的录制回放工具,可以和Maven、Gradle、Ant等工具进行集成。

Robotium可以在Android Studio和Eclipse中使用。

1)Android Studio

下载示例程序:http://dl.bintray.com/robotium/generic/ExampleTestProject_AndroidStudio.zip

在Android Studio欢迎页面,点击 “Open an existing Android Studio project”,打开解压后的示例程序所在文件夹。

在项目视图中,找到app/src/androidTest/java/com.example.android.notepad/路径下的“NotePadTest.java”文件,点击右键并选择“Run NotePadTest”以在模拟器或设备上运行测试用例。

2)Eclipse

下载示例程序:http://dl.bintray.com/robotium/generic/ExampleTestProject_Eclipse_v5.5.1.zip

在Eclipse中,点击File --> Import --> Existing Project into workspace --> Select archive file,选择ExampleTestProject_Eclipse_v5.5.1.zip导入示例项目:

在项目上单击右键然,选择Run As --> Run As Android JUnit Test.,在设备或模拟器上运行测试用例。

测试用例示例:

public class EditorTest extends
        ActivityInstrumentationTestCase2<EditorActivity> {

  private Solo solo;

  public EditorTest() {
        super(EditorActivity.class);
  }

  public void setUp() throws Exception {
      solo = new Solo(getInstrumentation(), getActivity());
  }

  public void testPreferenceIsSaved() throws Exception {

        solo.clickOnText("More");
        solo.clickOnText("Preferences");
        solo.clickOnText("Edit File Extensions");
        Assert.assertTrue(solo.searchText("rtf"));

        solo.clickOnText("txt");
        solo.clearEditText(2);
        solo.enterText(2, "robotium");
        solo.clickOnButton("Save");
        solo.goBack();
        solo.clickOnText("Edit File Extensions");
        Assert.assertTrue(solo.searchText("application/robotium"));

  }

   @Override
   public void tearDown() throws Exception {
    solo.finishOpenedActivities();
  }
}

results matching ""

    No results matching ""